#include"String.h"
namespace Yushen
{
  void test1()
  {
    string a;
    a.resize(4, 'a');
    cout << a << endl;
    // 指定插入
    a.insert(0, 'b');
    cout << a << endl;  // baaaa
    a.insert(2, 'c');
    cout << a << endl;  // bacaaa
    a.insert(6, 'd');
    cout << a << endl;  // bacaaad
    string b("efg");
    a.insert(7, b);
    cout << a << endl;  // bacaaadefg
    a.insert(0, "ghj");
    cout << a << endl;  // ghjbacaaadefg
    a.insert(3, "zz");
    cout << a << endl;  // ghjzzbacaaadefg
    a.clear();
    cout << a << endl;
  }

  void test2()
  {
    string tmp = "abcdef";
    string::iterator begin = tmp.begin();
    while(begin != tmp.end())
    {
      cout << *begin;
      begin++;
    }

    cout << endl;
    tmp.erase(0, 1);
    cout << tmp << endl;  // bcdef
    tmp.erase(1, 2);
    cout << tmp << endl;  // bef
    tmp.erase(2, 1);
    cout << tmp << endl;  // be 
    tmp.erase(0, 4);
    cout << tmp << endl;  // 

  }

  void test3()
  {
    string a("abcde");
    cout << a.find("abc") << endl;  // 0
    cout << a.find("cd") << endl;  // 2
    cout << a.find('c', 3) << endl;  // -1
    cout << a.find("ca")  << endl;  // -1

    cout << a.substr(0, 2) << endl;  // ab

  }
}

int main()
{
  Yushen::test3();
  return 0;
}
